home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ETO Development Tools 4
/
ETO Development Tools 4.iso
/
Tools - Objects
/
Macintosh Programmer’s Workshop
/
MPW 3.1
/
MPW
/
Interfaces
/
CIncludes
/
Memory.h
< prev
next >
Wrap
Text File
|
1990-12-13
|
4KB
|
133 lines
/************************************************************
Created: Thursday, September 7, 1989 at 4:55 PM
Memory.h
C Interface to the Macintosh Libraries
Copyright Apple Computer, Inc. 1985-1989
All rights reserved
************************************************************/
#ifndef __MEMORY__
#define __MEMORY__
#ifndef __TYPES__
#include <Types.h>
#endif
#define maxSize 0x800000 /*Max data block size is 8 megabytes*/
typedef long Size;
typedef pascal long (*GrowZoneProcPtr)(Size cbNeeded);
struct Zone {
Ptr bkLim;
Ptr purgePtr;
Ptr hFstFree;
long zcbFree;
GrowZoneProcPtr gzProc;
short moreMast;
short flags;
short cntRel;
short maxRel;
short cntNRel;
short maxNRel;
short cntEmpty;
short cntHandles;
long minCBFree;
ProcPtr purgeProc;
Ptr sparePtr;
Ptr allocPtr;
short heapData;
};
typedef struct Zone Zone;
typedef Zone *THz;
#ifdef __cplusplus
extern "C" {
#endif
pascal Ptr GetApplLimit(void)
= {0x2EB8,0x0130};
pascal THz GetZone(void);
pascal THz SystemZone(void)
= {0x2EB8,0x02A6};
pascal THz ApplicZone(void)
= {0x2EB8,0x02AA};
pascal Handle NewHandle(Size byteCount);
pascal Handle NewHandleSys(Size byteCount);
pascal Handle NewHandleClear(Size byteCount);
pascal Handle NewHandleSysClear(Size byteCount);
pascal THz HandleZone(Handle h);
pascal Handle RecoverHandle(Ptr p);
pascal Ptr NewPtr(Size byteCount);
pascal Ptr NewPtrSys(Size byteCount);
pascal Ptr NewPtrClear(Size byteCount);
pascal Ptr NewPtrSysClear(Size byteCount);
pascal THz PtrZone(Ptr p);
pascal Handle GZSaveHnd(void)
= {0x2EB8,0x0328};
pascal Ptr TopMem(void)
= {0x2EB8,0x0108};
pascal long MaxBlock(void);
pascal long StackSpace(void);
pascal Handle NewEmptyHandle(void);
pascal void HLock(Handle h);
pascal void HUnlock(Handle h);
pascal void HPurge(Handle h);
pascal void HNoPurge(Handle h);
pascal Ptr StripAddress(Ptr theAddress);
pascal Size MFMaxMem(Size *grow)
= {0x3F3C,0x0015,0xA88F};
pascal long MFFreeMem(void)
= {0x3F3C,0x0018,0xA88F};
pascal Handle MFTempNewHandle(Size logicalSize,OSErr *resultCode)
= {0x3F3C,0x001D,0xA88F};
pascal void MFTempHLock(Handle h,OSErr *resultCode)
= {0x3F3C,0x001E,0xA88F};
pascal void MFTempHUnlock(Handle h,OSErr *resultCode)
= {0x3F3C,0x001F,0xA88F};
pascal void MFTempDisposHandle(Handle h,OSErr *resultCode)
= {0x3F3C,0x0020,0xA88F};
pascal Ptr MFTopMem(void)
= {0x3F3C,0x0016,0xA88F};
pascal void InitApplZone(void);
pascal void InitZone(GrowZoneProcPtr pgrowZone,short cmoreMasters,Ptr limitPtr,
Ptr startPtr);
pascal void SetZone(THz hz);
pascal Size CompactMem(Size cbNeeded);
pascal void PurgeMem(Size cbNeeded);
pascal long FreeMem(void);
pascal void ResrvMem(Size cbNeeded);
pascal Size MaxMem(Size *grow);
pascal void SetGrowZone(GrowZoneProcPtr growZone);
pascal void SetApplLimit(Ptr zoneLimit);
pascal void MoveHHi(Handle h);
pascal void DisposPtr(Ptr p);
pascal Size GetPtrSize(Ptr p);
pascal void SetPtrSize(Ptr p,Size newSize);
pascal void DisposHandle(Handle h);
pascal Size GetHandleSize(Handle h);
pascal void SetHandleSize(Handle h,Size newSize);
pascal void EmptyHandle(Handle h);
pascal void ReallocHandle(Handle h,Size byteCount);
pascal void HSetRBit(Handle h);
pascal void HClrRBit(Handle h);
pascal void MoreMasters(void);
pascal void BlockMove(Ptr srcPtr,Ptr destPtr,Size byteCount);
pascal OSErr MemError(void)
= {0x3EB8,0x0220};
pascal void PurgeSpace(long *total,long *contig);
pascal char HGetState(Handle h);
pascal void HSetState(Handle h,char flags);
pascal void SetApplBase(Ptr startPtr);
pascal void MaxApplZone(void);
#ifdef __cplusplus
}
#endif
#endif